const app = getApp()
const {
  post,
  postVideo
} = require('../../../apis/api')
import { createStoreBindings } from 'mobx-miniprogram-bindings'
import { store } from '../../../store/store'

Date.prototype.Format = function (fmt) {
  var o = {
    "M+": this.getMonth() + 1, //月份 
    "d+": this.getDate(), //日 
    "h+": this.getHours(), //小时 
    "m+": this.getMinutes(), //分 
    "s+": this.getSeconds() //秒 
  };
  if (/(y+)/.test(fmt)) { //根据y的长度来截取年
    fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  }
  for (var k in o) {
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  }
  return fmt;
}

const options = [
  {
    text: '摄影',
    value: '0'
  },
  {
    text: '学习',
    value: '1'
  },
  {
    text: '美食',
    value: '2'
  },
  {
    text: '旅游',
    value: '3'
  },
  {
    text: '穿搭',
    value: '4'
  },
];

Page({

  /**
   * 页面的初始数据
   */
  data: {
    fileList: [],
    message: "",
    picUrl: [],
    show: false,
    options,
    fieldValue: '',
    cascaderValue: '',
  },

  onClick() {
    this.setData({
      show: true,
    });
  },

  onClose() {
    this.setData({
      show: false,
    });
  },
  onFinish(e) {
    const { selectedOptions, value } = e.detail;
    const fieldValue = selectedOptions
        .map((option) => option.text || option.name)
        .join('/');
    this.setData({
      fieldValue,
      cascaderValue: value,
    })
    console.log(this.data.cascaderValue)
  },
  fabu: function () {
    var that = this
    wx.showLoading({
      title: "上传中...",
      mask: true
    })
    post(this.data.token, this.data.cascaderValue, this.data.title, this.data.message, "测试", (res) => {
      if (res.data.code === 200) {
        that.data.fileList.forEach(item => {
          postVideo(that.data.token, res.data.data, item.url, res => {
            console.log(res)
            var jsonObject = JSON.parse(res.data);
            if (jsonObject.code !== 200) {
              wx.hideLoading()
              
              wx.showToast({
                title: res.data.message,
                icon: 'none'
              })
            }
          })
        })
        wx.hideLoading()
        this.setData({
          fileList: [],
          message: "",
          fieldValue: '',
          title:""
        })
        wx.switchTab({
          url: '/pages/index/index',
        })
      }
    }, (error) => {
      console.log(error);
      wx.hideLoading();
    })
  
  },
  //before-read 事件可以在上传前进行校验，调用 callback 方法传入 true 表示校验通过，传入 false 表示校验失败。
  beforeRead(event) {
    const { file, callback } = event.detail;
    callback(file.type === 'video');
  },

  afterRead(event) {
    const file = event.detail.file

    //还没上传时将选择的图片的上传状态设置为加载    
    var that = this
    const fileList = that.data.fileList
    fileList.push({})
    fileList[fileList.length - 1].url = file.url
    fileList[fileList.length - 1].deletable = 'true'
    fileList[fileList.length - 1].status = 'done'
    that.setData({ fileList })
  },
  deleteImg(event) {
    // event.detail.index: 删除图片的序号值
    const delIndex = event.detail.index
    const fileList = this.data.fileList
    // 页面删除（假删除）
    // 添加或删除 array.splice(index,howmany,item1,.....,itemX)
    fileList.splice(delIndex, 1)
    this.setData({ fileList })
  },

  onShow: function () {

    // 从其他页面跳转回这个页面时更该选中状态的icon
    if (typeof this.getTabBar === "function" &&
      this.getTabBar()) {
      this.getTabBar().setData({
        selected: 1 // 根据tab的索引值设置
      })
    }

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.storeBindings = createStoreBindings(this, {
      store,
      fields: ['username', 'userAvatar', 'email', 'token'],
      actions: ['setUsername', 'setUserAvatar', 'setEmail', 'setToken'],
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})